'use strict';

const Controller = require('egg').Controller;


class LinkController extends Controller {

  // 新增
  async create() {
    const { ctx } = this;
    const res = await ctx.service.menu.create(ctx.request.body);
    res ? ctx.helper.success('新增菜单成功', res) : ctx.helper.error('新增菜单失败', 400);
  }

  // 获取列表
  async index() {
    const { ctx } = this;
    const { pageNum = 1, pageSize = 10 } = ctx.request.query;
    const res = await ctx.service.menu.getList(pageNum, pageSize);
    res ? ctx.helper.success('获取菜单列表成功', res) : ctx.helper.error('获取菜单列表失败');
  }

  // 根据获取详细资料
  async show() {
    const { ctx } = this;
    const res = await ctx.service.menu.getInfo(ctx.params.id);
    res ? ctx.helper.success('获取成功', res) : ctx.helper.error('获取失败', 400);
  }

  // 删除
  async destroy() {
    const { ctx } = this;
    if (!ctx.request.body.ids) return ctx.helper.error('请选择要删除的选中项');
    const res = await ctx.service.menu.del(ctx.request.body);
    res ? ctx.helper.success('删除菜单成功') : ctx.helper.error('删除的菜单失败', 400);

  }

  // 修改
  async update() {
    const { ctx } = this;
    const res = await ctx.service.menu.updated(ctx.params.id, ctx.request.body);
    res && res[0] !== 0 ? ctx.helper.success('修改菜单成功') : ctx.helper.error('修改菜单失败', 400);

  }

  /**
   * @apikey
   * @summary 获取 用户菜单
   * @description 获取 用户菜单
   * @router get /api/v1/menus/user_menus
   */
  async userMenus() {
    const { ctx } = this;
    const res = await ctx.service.menu.userMenus();
    ctx.helper.success('成功', res);
  }
}

module.exports = LinkController;
